package com.wf.course.service;

import java.util.List;

import com.utils.page.PageBean;
import com.wf.course.model.goods.GoodsOrder;
import com.wf.course.model.goods.GoodsOrderRelation;
import com.wf.course.model.member.CoinLog;
import com.wf.course.model.member.GiveCoinLog;

public interface IGoodsOrderService {
	/**
	 * 根据pageBean中封装的查询条件查询
	 * @param pageBean
	 * @return
	 */
	public void indexInfo(PageBean<GoodsOrder> pageBean);
	/**
	 * 添加或修改
	 * @param 
	 */
	public void saveGoodsOrderOrUpdate(GoodsOrder goodsOrder);
	/**
	 * 查询
	 * @param 
	 */
	public GoodsOrder queryGoodsOrderById(Integer id);
	/**
	 * 删除
	 * @param id
	 */
	public void deleteById(Integer id);
	
	/**
	 * 查询
	 * @param 
	 */
	public GoodsOrder queryGoodsOrderByOrderCode(String  orderCode);
	
	
	/**
	 * 根据pageBean中封装的查询条件查询
	 * @param pageBean
	 * @return
	 */
	public List<GoodsOrder> goodOrders(PageBean<GoodsOrder> pageBean);
	
	/**
	 * 删除
	 * @param orderCode
	 */
	public void deleteByOrderCode(String  orderCode);
	/**
	 * 查询配置订单列表
	 */
	public void getConfigOrders(PageBean<GoodsOrder> pageBean);
	/**
	 * 配置订单
	 * @param orderCode
	 */
	public void configGoodsOrder(GoodsOrder goodsOrder,GoodsOrderRelation goodsOrderRelation,GiveCoinLog coinLog);
	
	/**
	 * 订单支付额统计
	 * @param goodsOrder
	 */
	public GoodsOrder goodsTotalAmount(String userSource,String  orderBeginTime,String  orderEndTime);
	
	/**
	 * 关闭30分钟内未支付的订单
	 * @param goodsOrder
	 */
	public void closeGoodsOrders();
	
	
	/**
	 * 导出配置订单列表，
	 */
	public List<GoodsOrder> exportConfigGoodsOrder(PageBean<GoodsOrder> pageBean);
	
	/**
	 * 订单退货
	 * 规则：返回-1退货失败 返回1 退货成功
	 * @param 
	 * @param orderCode
	 */
	public Integer goodsReturn(String orderCode);
	/**
	 * 查询
	 * @param 
	 */
	public GoodsOrder queryGoodsOrderByOrderCodes(String  orderCode);
	
	/**
	 * 查询课程名称
	 * @param 
	 */
	public List<GoodsOrder> getGoodsNames(String  orderCode);
	/**
	 * 订单备注修改信息
	 * @param 
	 */
	public void goodsupdateOrderRemark(String orderCode, String uqdateremark);
	
	
}
